perm filename PAT.LSP[F78,JMC] blob sn#533513 filedate 1980-08-31 generic text, type T, neo UTF8
;;; most obscure (maybe something to do with Takeuchi function?)

(DEFUN BET (SUM WIN LAST) 
       (COND ((GREATERP SUM 0.) 1.)
	     ((NOT WIN) LAST)
	     (T (MIN (ADD1 LAST) (DIFFERENCE 1. SUM))))) 

(DEFUN OUTCOME (U SUM WIN LAST) 
       (COND ((NULL U) SUM)
	     (T ((LAMBDA (Z) (OUTCOME (CDR U)
				      (PLUS SUM (TIMES (CAR U) Z))
				      (EQUAL (CAR U) 1.)
				      Z))
		 (BET SUM WIN LAST))))) 

(DEFUN PAT (U) (OUTCOME U 0. NIL 1.)) 

;;; BINARY seems to return nil for any n.
(DEFUN BINARY (N) 
       (COND ((ZEROP N) NIL)
	     (T ((LAMBDA (Z) 
			 (APPEND (MAPCAR 
				  (FUNCTION (LAMBDA (W) (CONS -1. W)))
				  Z)
				 (MAPCAR 
				  (FUNCTION (LAMBDA (W) (CONS 1. W)))
				  Z)))
		 (BINARY (SUB1 N)))))) 

(DEFUN SUM (U) (SUM1 U 0.)) 

(DEFUN SUM1 (U S) 
       (COND ((NULL U) S) (T (SUM1 (CDR U) (PLUS (CAR U) S)))))